﻿namespace InlineIL;

/// <summary>
/// Binary operator.
/// </summary>
#if INLINEIL_LIBRARY
public
#else
internal
#endif
    enum BinaryOperator
{
    /// <summary>
    /// <c>op_Addition</c>
    /// </summary>
    Addition,

    /// <summary>
    /// <c>op_Subtraction</c>
    /// </summary>
    Subtraction,

    /// <summary>
    /// <c>op_Multiply</c>
    /// </summary>
    Multiply,

    /// <summary>
    /// <c>op_Division</c>
    /// </summary>
    Division,

    /// <summary>
    /// <c>op_Modulus</c>
    /// </summary>
    Modulus,

    /// <summary>
    /// <c>op_ExclusiveOr</c>
    /// </summary>
    ExclusiveOr,

    /// <summary>
    /// <c>op_BitwiseAnd</c>
    /// </summary>
    BitwiseAnd,

    /// <summary>
    /// <c>op_BitwiseOr</c>
    /// </summary>
    BitwiseOr,

    /// <summary>
    /// <c>op_LogicalAnd</c>
    /// </summary>
    LogicalAnd,

    /// <summary>
    /// <c>op_LogicalOr</c>
    /// </summary>
    LogicalOr,

    /// <summary>
    /// <c>op_Assign</c>
    /// </summary>
    Assign,

    /// <summary>
    /// <c>op_LeftShift</c>
    /// </summary>
    LeftShift,

    /// <summary>
    /// <c>op_RightShift</c>
    /// </summary>
    RightShift,

    /// <summary>
    /// <c>op_SignedRightShift</c>
    /// </summary>
    SignedRightShift,

    /// <summary>
    /// <c>op_UnsignedRightShift</c>
    /// </summary>
    UnsignedRightShift,

    /// <summary>
    /// <c>op_Equality</c>
    /// </summary>
    Equality,

    /// <summary>
    /// <c>op_GreaterThan</c>
    /// </summary>
    GreaterThan,

    /// <summary>
    /// <c>op_LessThan</c>
    /// </summary>
    LessThan,

    /// <summary>
    /// <c>op_Inequality</c>
    /// </summary>
    Inequality,

    /// <summary>
    /// <c>op_GreaterThanOrEqual</c>
    /// </summary>
    GreaterThanOrEqual,

    /// <summary>
    /// <c>op_LessThanOrEqual</c>
    /// </summary>
    LessThanOrEqual,

    /// <summary>
    /// <c>op_UnsignedRightShiftAssignment</c>
    /// </summary>
    UnsignedRightShiftAssignment,

    /// <summary>
    /// <c>op_MemberSelection</c>
    /// </summary>
    MemberSelection,

    /// <summary>
    /// <c>op_RightShiftAssignment</c>
    /// </summary>
    RightShiftAssignment,

    /// <summary>
    /// <c>op_MultiplicationAssignment</c>
    /// </summary>
    MultiplicationAssignment,

    /// <summary>
    /// <c>op_PointerToMemberSelection</c>
    /// </summary>
    PointerToMemberSelection,

    /// <summary>
    /// <c>op_SubtractionAssignment</c>
    /// </summary>
    SubtractionAssignment,

    /// <summary>
    /// <c>op_ExclusiveOrAssignment</c>
    /// </summary>
    ExclusiveOrAssignment,

    /// <summary>
    /// <c>op_LeftShiftAssignment</c>
    /// </summary>
    LeftShiftAssignment,

    /// <summary>
    /// <c>op_ModulusAssignment</c>
    /// </summary>
    ModulusAssignment,

    /// <summary>
    /// <c>op_AdditionAssignment</c>
    /// </summary>
    AdditionAssignment,

    /// <summary>
    /// <c>op_BitwiseAndAssignment</c>
    /// </summary>
    BitwiseAndAssignment,

    /// <summary>
    /// <c>op_BitwiseOrAssignment</c>
    /// </summary>
    BitwiseOrAssignment,

    /// <summary>
    /// <c>op_Comma</c>
    /// </summary>
    Comma,

    /// <summary>
    /// <c>op_DivisionAssignment</c>
    /// </summary>
    DivisionAssignment
}
